home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio / Ray Dream Studio (CDRAYD1) (Ray Dream) (1995).iso / DREAMSDK.WIN / INCLUDE / I3DSHSCN.H < prev    next >
C/C++ Source or Header  |  1995-11-04  |  4KB  |  76 lines

  1. /* $Id: I3DSHSCN.H 1.4 1995/11/04 17:22:23 YannPC Exp $ */
  2. /*****************************************************************************\
  3. *                                                                             *
  4. * I3DShScn.h                                                                                *
  5. *   I3DShScene definition                                                     *
  6. *                                                                             *
  7. *           Copyright (c) 1995, Ray Dream, Inc. All rights reserved.          *
  8. *                                                                             *
  9. \*****************************************************************************/
  10.  
  11. #ifndef __I3DSHSCN__
  12. #define __I3DSHSCN__
  13.  
  14. #ifndef __I3DSHOBJ__
  15. #include "I3DShObj.h"
  16. #endif
  17.  
  18. #ifndef __I3DSHTRE__
  19. #include "I3DShTre.h"
  20. #endif
  21.  
  22.  
  23. //****** Globally Unique Ids **************************************************
  24.  
  25. DEFINE_GUID(IID_I3DShScene, 0xD4E4AC00L, 0x3A02, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
  26.  
  27.  
  28. /*****************************************************************************\
  29. *  I3DShScene                                                                 *
  30. *                                                                             *
  31. *    Topmost data structure that contains all the data of a scene.            *
  32. *                                                                             *
  33. \*****************************************************************************/
  34.  
  35. #undef  INTERFACE
  36. #define INTERFACE   I3DShScene
  37.  
  38. DECLARE_INTERFACE_(I3DShScene, IUnknown) {
  39.     // IUnknown methods
  40.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  41.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  42.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  43.  
  44.     // I3DShScene methods
  45.     //-- 3D Objects list
  46.     STDMETHOD_(ULONG, Get3DObjectsCount) (THIS) PURE;
  47.     STDMETHOD_(I3DShObject*, Get3DObjectByIndex) (THIS_ ULONG index) PURE;    // index is 1 based
  48.     STDMETHOD_(I3DShObject*, Get3DObjectByName) (THIS_ char* name) PURE;
  49.     STDMETHOD(Insert3DObject) (THIS_ I3DShObject* object) PURE;
  50.     STDMETHOD(Remove3DObject) (THIS_ I3DShObject* object) PURE;
  51.     STDMETHOD(Changed3DObject) (THIS_ I3DShObject* object) PURE;
  52.     //-- Tree root (Universe) setting
  53.     STDMETHOD_(I3DShGroup*, GetTreeRoot) (THIS) PURE;
  54.     STDMETHOD(SetTreeRoot) (THIS_ I3DShGroup* universe) PURE;        // Works only if there was no tree root in the scene
  55.     STDMETHOD(CreateTreeRootIfNone) (THIS) PURE;
  56.     //-- Quick tree access
  57.     STDMETHOD_(I3DShTreeElement*, GetTreeElementByName) (THIS_ char* name) PURE;
  58.     STDMETHOD_(ULONG, GetInstancesCount) (THIS) PURE;
  59.     STDMETHOD_(I3DShInstance*, GetInstanceByIndex) (THIS_ ULONG index) PURE;    // index is 1 based
  60.     STDMETHOD_(ULONG, GetLightsourcesCount) (THIS) PURE;
  61.     STDMETHOD_(I3DShLightsource*, GetLightsourceByIndex) (THIS_ ULONG index) PURE;    // index is 1 based
  62.     STDMETHOD_(ULONG, GetCamerasCount) (THIS) PURE;
  63.     STDMETHOD_(I3DShCamera*, GetCameraByIndex) (THIS_ ULONG index) PURE;    // index is 1 based
  64.     //-- Misc. rendering settings
  65.     STDMETHOD(SetProductionFormat) (THIS_ NUM3D sizeh, NUM3D sizev, NUM3D dpi) PURE;    // sizeh and sizev in points (=1/72 inch)
  66.     STDMETHOD(GetProductionFormat) (THIS_ NUM3D* sizeh, NUM3D* sizev, NUM3D* dpi) PURE;    // sizeh and sizev in points (=1/72 inch)
  67.     STDMETHOD(CreateRenderingCameraIfNone) (THIS_ ULONG cameraType, BOOLEAN createDistantLight) PURE;
  68.     STDMETHOD_(I3DShCamera*, GetRenderingCamera) (THIS) PURE;
  69.     STDMETHOD(SetRenderingCamera) (THIS_ I3DShCamera* camera) PURE;
  70.     //-- Misc. Animation
  71.     STDMETHOD_(ULONG, GetTime) (THIS_ NUM3D* ticks) PURE;
  72.     };
  73.  
  74. #endif
  75.  
  76.